perm filename IEFTP.H[11,HE] blob sn#688216 filedate 1982-12-06 generic text, type T, neo UTF8
/*
 * eftp.h
 *
 * Define EFTP data types, constants, etc.
 *
 * Jeffrey Mogul @ Stanford	28-January-1981
 *	- created
 *
 * Jeffrey Mogul @ Stanford	28 October 1982
 *	- changed EFTP_MAX_PACKET from 532 to 512; this is because
 *	there is apparently an unwritten law to this effect, and the
 *	larger packets were crashing the IFS.
 */

#include <puplib.h>

struct EftpChan {	/* defines an eftp transfer's state */
	unsigned short sequence;	/* sequence number */
	struct	PupChan pchan;		/* channel for transfer */
	struct  Port    remport;	/* port of other side */
	int	WaitTime;		/* maximum waiting time */
	char    ef_mode;		/* send/receive */
	};

/*
 * values for mode word.
 */
#define	EFTPM_SEND     01
#define EFTPM_RECEIVE  02
#define EFTPM_BYTESWAP 04	/* w.r.t network standard byte order */

/*
 * failure codes
 */
#define EFTP_ERROR  (-101)		/* random error */
#define EFTP_BADACK (-102)		/* bad ack */
#define EFTP_ABORT  (-103)		/* transfer aborted */
#define EFTP_RESTART	(-104)		/* try from scratch */
#define	EFTP_WAIT	(-105)		/* wait a while, then restart */
#define EFTP_OUTOFSYNCH	(-106)		/* sender is out of synch */
#define	EFTP_ENDOFFILE	(-107)		/* end of received file (not error) */

/*
 * EFTP Abort codes
 */
#define	EFTPA_EXTSENDER		1		/* External Sender Abort */
#define	EFTPA_EXTRECEIVER	2		/* External Receiver Abort */
#define	EFTPA_RECBUSY		3		/* Receiver Busy Abort */
#define	EFTPA_OUTOFSYNCH	4		/* Out of Synch Abort */
#define	EFTPA_MISC		5		/* Misc Abort */
#define	EFTPA_LONGWAIT		6		/* Long Wait Abort */
#define	EFTPA_MEDWAIT		7		/* Medium Wait Abort */
#define	EFTPA_SUSPREQ		8		/* Suspend Request Abort */

/*
 * maximum packet contents
 */
#define EFTP_MAX_PACKET 512	/* cannot be more than 512 because a lot of
				 * Xerox code would break (e.g., IFS)
				 */

/*
 * Timeout constants
 */
#define EFTP_DALLYWAIT	5			/* wait for dally */

/*
 * global error message, abort code, and wait times
 */
extern char EftpErrMsg[128];
extern unsigned short EftpAbortCode;
extern int EftpWaitTime;

/*
 * recommended waiting times (seconds)
 */
#define EFTPW_RBUSY	10	/* wait time after ReceiverBusy */
#define EFTPW_LWAIT	(5*60)	/* wait time after LongWaitAbort */
#define EFTPW_MWAIT	60	/* wait time after MediumWaitAbort */